#include <iostream>
#include <stdlib.h>
#include <iomanip>
using namespace std;
//typedef struct st {
//	int data;
//	st* next;
//};
//
//void charu(int x,int y,st*p)                
//{
//	int flag = 1;
//	while (flag)
//	{
//		if (p->data == x)
//		{
//			st* t = new st;
//			if (p->next != NULL)
//			{
//				t->next = p->next;
//				p->next = t;
//				t->data = y;
//				return;
//			}
//			else
//			{
//				t->next = NULL;
//				p->next = t;
//				t->data = y;
//				return;
//			}
//			flag = 0;
//		}
//		else
//		{
//			p = p->next;
//		}
//	}
//}
//void chaxu(int x, st* p)
//{
//	int d = 1;
//	while (d)
//	{
//		if (p->data == x)
//		{
//			if (p->next == NULL)
//			{
//				cout <<0<<endl;
//				return;
//			}
//			else
//			{
//				cout << p->next->data<<endl;
//				return;
//			}
//		}
//		else
//		{
//			p = p->next;
//		}
//
//	}
//}
//void shanchu(int x, st* p)
//{
//	while (1)
//	{
//		if (p->data == x)
//		{
//			if (p->next == NULL)
//				return;
//			else
//			{
//				st* l;
//				if (p->next->next != NULL)
//				{
//					l = p->next->next;
//					free(p->next);
//					p->next = l;
//				}
//				else
//				{
//					free(p->next);
//					p->next = NULL;
//				}
//				return;
//			}
//		}
//		else
//			p = p->next;
//	}
//}
//int main(void)
//{
//	st*p = new st;
//	p->data = 1;
//	p->next = NULL;
//	st* q = p;
//	int i, n;
//	cin >> n;
//	for (i = 0; i < n; i++)
//	{
//		int t;
//		cin >> t;
//		if (t == 1)
//		{
//			int x, y;
//			cin >> x >> y;
//			charu(x, y, q);
//		}
//		else if (t == 2)
//		{
//			int x;
//			cin >> x;
//			chaxu(x, q);
//		}
//		else if (t == 3)
//		{
//			int x;
//			cin >> x;
//			shanchu(x, q);
//		}
//	}
//	return 0;
//}
//int st[1000001] = { 0 };
//int main()
//{
//	int n;
//	cin >> n;
//	int i;
//	for (i = 1; i <= n; i++)
//		cin >> st[i];
//	int first;
//	cin >> first;
//	int count=0;
//	int s = first;
//	while (1)
//	{
//		if (s == 0)
//			return 0;
//		cout << s << " ";
//		s = st[s];
//	}
//	return 0;
//}
//#include <queue>
//queue<int> p;
//int main(void)
//{
//	int n,i;
//	cin >> n;
//	for (i = 0; i < n; i++)
//	{
//		int s;
//		cin >> s;
//		if (s == 1) {
//			int x;
//			cin >> x;
//			p.push(x);
//		}
//		else if (s == 2) {
//			if (p.empty() == true)
//				cout << "ERR_CANNOT_POP"<<endl;
//			else
//			    p.pop();
//		}
//		else if (s == 3) {
//			if (p.empty()==true )
//				cout << "ERR_CANNOT_QUERY"<<endl;
//			else cout << p.front() << endl;
//		}
//		else if (s == 4) {
//			cout << p.size() << endl;
//		}
//	}
//	return 0;
//}